package com.whut.mapper;

import com.whut.v_dataMap.SummaryReport.Part3VO.CheckListVO;
import com.whut.v_dataMap.SummaryReport.Part3VO.Level1IdAndNameVO;
import com.whut.v_dataMap.SummaryReport.Part3VO.LevelProblemVO.RiskpName4VO;
import com.whut.v_dataMap.SummaryReport.Part2.projectInfoMap;
import com.whut.v_dataMap.SummaryReport.Part3VO.ProjectListVO;
import com.whut.v_dataMap.SummaryReport.Part4.System1Map;
import com.whut.v_dataMap.SummaryReport.Part4.TaskMap;
import com.whut.v_dataMap.SummaryReport.part4VO.MapTreeVO;


import java.util.List;

public interface SummaryReportMapper {


    //根据委托方id和时间范围查询问题数量
    Integer getProblemNumberByContractIdAndTime(Integer contractId, String startTime, String endTime);

    //根据委托方id和时间范围查询问题信息（分子公司),用于前端页面展示
    List<MapTreeVO> getTaskProblemTreeInfoByIdAndTime(Integer contractId, String startTime, String endTime);

    //根据委托方id和时间范围查询问题信息,用于前端页面展示
    List<MapTreeVO> getAllProblemTreeInfoByIdAndTime(Integer contractId, String startTime, String endTime);

    //根据前端选择的图片和Mkey更新pc表
    int updatePCBySelectedPic(Integer Mkey,String selectedPic);

    //重置图片选择
    int resetPCSelectedPic(Integer contractId, String startTime, String endTime);

    //基于前端选择过的图片获取第四部分的报告数据-问题分析模块（分子公司）
    List<TaskMap> getTaskProblemReportInfoByIdAndTime(Integer contractId, String startTime, String endTime);

    //基于前端选择过的图片获取第四部分的报告数据-问题分析模块
    List<System1Map> getAllProblemReportInfoByIdAndTime(Integer contractId, String startTime, String endTime);

    //获取第四部分的报告数据-问题分析模块（分子公司）
    List<TaskMap> getTaskProblemReportInfoAll(Integer contractId, String startTime, String endTime);

    //获取第四部分的报告数据-问题分析模块
    List<System1Map> getAllProblemReportInfoAll(Integer contractId, String startTime, String endTime);

    //获取做过检查的项目数
    Integer getAllCheckedProjectNumber(Integer contractId, String startTime, String endTime);

    //获取分公司下做过检查的项目数
    Integer getTaskCheckedProjectNumber(Integer contractId, String startTime, String endTime,String taskDescription);

    //获取涉及4级检查的项目数
    Integer getAllFourCheckedProjectNumber(Integer contractId, String startTime, String endTime,String pName4);

    //获取分公司下涉及4级检查的项目数
    Integer getTaskFourCheckedProjectNumber(Integer contractId, String startTime, String endTime,String taskDescription,String pName4);

    //根据contractid取contract的名字（client
    String getContractNameByContractId(Integer contractId);

    //生成第三部分基础数据
    List<ProjectListVO> getPart3BasicData(Integer contractId, String startTime, String endTime, Integer firstId);

    //获取第四级、第六级及其对应的特征值
    List<RiskpName4VO> getPName4AndRiskNum(Integer contractId, String startTime, String endTime, Integer firstId);

    //获取检查中涉及fourthId的项目数量
    Integer hadProblemProjectNum(Integer contractId, String startTime, String endTime, Integer firstId, Integer fourthId);

    //获取所有检查项目数量
    Integer getCheckProjectNum(Integer contractId, String startTime, String endTime, Integer firstId);

    //获取报告第一、二部分所需数据（ProjectInfoMap有详细信息）
    List<projectInfoMap> getProjectInfoBycontractIdandTime(Integer contractId, String startTime, String endTime);

    //获取报告第一、二部分所需数据（质量和安全分数）
    List<String> getSCpointByprojectId(Integer projectId,Integer number);

    //获取该委托方所作所有的pName1
    List<Integer> getFirstIdByContractIdAndTimeRange(Integer contractId, String startTime, String endTime);

    //获取所有第一级检查
    List<Level1IdAndNameVO> getLevel1IdAndName(Integer contractId, String startTime, String endTime);

}
